package com.stock.common.collect;

import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.ListUtil;
import com.stock.common.lang.StringUtils;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;

public class ListUtils extends ListUtil {

    /**
     * 是否包含字符串
     * @param str 验证字符串
     * @param strs 字符串组
     * @return 包含返回true
     */
    public static boolean inString(String str, List<String> strs){
        if (str != null && strs != null){
            for (String s : strs){
                if (str.equals(StringUtils.trim(s))){
                    return true;
                }
            }
        }
        return false;
    }

    /**
     * 是否包含字符串
     * @param strs 验证字符串组
     * @param strs2 字符串组
     * @return 包含返回true
     */
    public static boolean inString(List<String> strs, List<String> strs2){
        if (strs != null && strs2 != null){
            for (String s : strs){
                if (s != null) {
                    for (String s2 : strs2){
                        if (StringUtils.trim(s).equals(StringUtils.trim(s2))){
                            return true;
                        }
                    }
                }
            }
        }
        return false;
    }

    public static <E> ArrayList<E> newArrayList() {
        return new ArrayList<>();
    }

    @SafeVarargs
    public static <E> ArrayList<E> newArrayList(E... elements) {
        if (elements == null) {
            return newArrayList();
        }
        ArrayList<E> list = new ArrayList<>(elements.length);
        Collections.addAll(list, elements);
        return list;
    }

    /**
     * 取得Collection的第一个元素，如果collection为空返回null.
     */
	public static <T> T getFirst(Collection<T> collection) {
        if (CollUtil.isEmpty(collection)) {
            return null;
        }
		return collection.iterator().next();
	}

}
